\subsection{Instrucciones de Ejecución}

Hay dos alternativas para ejecutar la aplicación. La primera es mediante Gradle, y la segunda es utilizando el jar generado por Gradle al construir el proyecto.

Cada alternativa tiene sus ventajas y desventajas. Al utilizar el jar se consigue que el programa arranque más rápidamente que al utilizar Gradle. Sin embargo, la utilización del jar hace que los cambios introducidos en el programa no se reflejen hasta que se genere nuevamente el jar.

Al utilizar Gradle para ejecutar el proyecto, se incluirán automáticamente cualquier cambio realizado al mismo. Pero la ejecución del proyecto a través de Gradle toma unos instantes más, debido a que Gradle debe chequear que todo esté actualizado antes de proseguir con la siguiente etapa.

\subsubsection{Ejecutable Principal}

Para ejecutar el programa principal utilizando el archivo jar generado se debe utilizar un comando similar al siguiente:

\begin{verbatim}
$ java -jar build/libs/MyLanga-1.0.jar -f src/test/resources/tp.mylanga
\end{verbatim}

Para ejecutar el programa principal utilizando Gradle se debe utilizar un comando similar al siguiente:

\begin{verbatim}
$ gradlew run -PmylangaArgs="-f src/test/resources/tp.mylanga"
\end{verbatim}

Sin importar la manera en la que se ejecute, el programa soporta tres modos de ingresar un programa en lenguaje MyLanga. El proyecto acepta los siguientes modificadores en la línea de comandos:\\

\begin{tabular}{lll}
Modificador & Parámetros & Descripción \\
\hline \\
-c & Ninguno           & Lee un programa MyLanga mediante la consola \\
-e & Programa MyLanga  & Lee un programa MyLanga en la línea de comando \\
-f & Nombre de Archivo & Lee un programa MyLanga desde el archivo.
\end{tabular}
\\
\\

Si la compilaci'on fue exitosa en el directorio actual se va a generar el archivo con el nombre \textbf{results.csv} conteniendo los resultados de la ejecuci'on del programa. Para generar el gr'afico de los puntos generados se provee un script de gnuplot, y se ejecuta de la siguiente manera:

\begin{verbatim}
$ ./plot.sh
\end{verbatim}

El script toma el archivo \textbf{results.csv} como entrada y produce el archivo \textbf{results.png} que es el gr'afico de los puntos generados.


\subsubsection{Ejecutable de Tests de Unidad}

Todos los tests de unidad e integraci'on que se implementaron durante el desarrollo se encuentran en el directorio ``/src/test/java/''. Para correr los tests basta con ejecutar el siguiente comando:

\begin{verbatim}
$ ./gradlew test
\end{verbatim}

